package com.example.day03;

/**
 * @author jeff
 * @since 2023/4/30 17:49
 */
public interface ConstantEnumIFace<T extends ConstantEnumIFace> {
    /**
     * 返回每个枚举对象的真值
     * @return
     */
    int getValue();

    /**
     * 返回每个枚举的所有枚举对象
     * @return
     */
    T[] theEnums();
    /**
     * 遍历匹配
     * @param value
     * @return
     */
    default T theEnum(int value) {
        T[] enums = theEnums();
        for (T theEnum: enums) {
            if (value==theEnum.getValue()){
                System.out.println("已匹配到数据："+theEnum);
                return theEnum;
            }
        }
        throw new RuntimeException("无效枚举值"+value);
    }

}
